home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / nihcl-30.lha / nihcl-3.0 / lib / OIO.h < prev    next >
C/C++ Source or Header  |  1990-05-19  |  4KB  |  108 lines

  1. #ifndef    OIO_H
  2. #define    OIO_H
  3.  
  4. /*$Header: /afs/alw.nih.gov/unix/sun4_40c/usr/local/src/nihcl-3.0/share/lib/RCS/OIO.h,v 3.0 90/05/20 00:20:23 kgorlen Rel $*/
  5.  
  6. /* OIO.h -- declarations for Object I/O abstract classes
  7.  
  8.     THIS SOFTWARE FITS THE DESCRIPTION IN THE U.S. COPYRIGHT ACT OF A
  9.     "UNITED STATES GOVERNMENT WORK".  IT WAS WRITTEN AS A PART OF THE
  10.     AUTHOR'S OFFICIAL DUTIES AS A GOVERNMENT EMPLOYEE.  THIS MEANS IT
  11.     CANNOT BE COPYRIGHTED.  THIS SOFTWARE IS FREELY AVAILABLE TO THE
  12.     PUBLIC FOR USE WITHOUT A COPYRIGHT NOTICE, AND THERE ARE NO
  13.     RESTRICTIONS ON ITS USE, NOW OR SUBSEQUENTLY.
  14.  
  15. Author:
  16.     K. E. Gorlen
  17.     Computer Systems Laboratory, DCRT
  18.     National Institutes of Health
  19.     Bethesda, MD 20892
  20.     May, 1989
  21.  
  22. Modification History:
  23.  
  24. $Log:    OIO.h,v $
  25.  * Revision 3.0  90/05/20  00:20:23  kgorlen
  26.  * Release for 1st edition.
  27.  * 
  28. */
  29. #include "Object.h"
  30.  
  31. class OIOin : public NIHCL {
  32. protected:
  33.     Object* _readObject(const Class& cl)    { return cl.readObject(*this); }
  34.     virtual Object* readObject(const Class&) = 0;
  35.     friend Object* Class::readFrom(OIOin&) const;
  36. public:
  37.     OIOin() {}
  38.     virtual OIOin& operator>>(char*) = 0;
  39.     virtual OIOin& operator>>(char&) = 0;
  40.     virtual OIOin& operator>>(unsigned char&) = 0;
  41.     virtual OIOin& operator>>(short&) = 0;
  42.     virtual OIOin& operator>>(unsigned short&) = 0;
  43.     virtual OIOin& operator>>(int&) = 0;
  44.     virtual OIOin& operator>>(unsigned int&) = 0;
  45.     virtual OIOin& operator>>(long&) = 0;
  46.     virtual OIOin& operator>>(unsigned long&) = 0;
  47.     virtual OIOin& operator>>(float&) = 0;
  48.     virtual OIOin& operator>>(double&) = 0;
  49.     virtual OIOin& operator>>(streambuf*) = 0;
  50.     virtual int get() = 0;
  51.     virtual OIOin& get(char&) = 0;
  52.     virtual OIOin& get(unsigned char&) = 0;
  53.     virtual OIOin& get(char*, unsigned size) = 0;
  54.     virtual OIOin& get(unsigned char*, unsigned size) = 0;
  55.     virtual OIOin& get(short*, unsigned size) = 0;
  56.     virtual OIOin& get(unsigned short*, unsigned size) = 0;
  57.     virtual OIOin& get(int*, unsigned size) = 0;
  58.     virtual OIOin& get(unsigned int*, unsigned size) = 0;
  59.     virtual OIOin& get(long*, unsigned size) = 0;
  60.     virtual OIOin& get(unsigned long*, unsigned size) = 0;
  61.     virtual OIOin& get(float*, unsigned size) = 0;
  62.     virtual OIOin& get(double*, unsigned size) = 0;
  63.     virtual OIOin& get(streambuf&, char delim ='\n') = 0;
  64.     virtual OIOin& getCString(char*, unsigned maxlen) = 0;
  65.     virtual int precision() = 0;
  66.     virtual int precision(int) = 0;
  67.     virtual int width() = 0;
  68.     virtual int width(int) = 0;
  69. };
  70.  
  71. class OIOout : public NIHCL {
  72. protected:
  73.     void _storer(const Object& ob)    { ob.storer(*this); }
  74.     virtual void storeObject(const Object&) = 0;
  75.     friend void Object::storeOn(OIOout&) const;
  76. public:
  77.     OIOout() {};
  78.     virtual OIOout& operator<<(const char*) = 0;
  79.     virtual OIOout& operator<<(char) = 0;
  80.     virtual OIOout& operator<<(unsigned char) = 0;
  81.     virtual OIOout& operator<<(short) = 0;
  82.     virtual OIOout& operator<<(unsigned short) = 0;
  83.     virtual OIOout& operator<<(int) = 0;
  84.     virtual OIOout& operator<<(unsigned) = 0;
  85.     virtual OIOout& operator<<(long) = 0;
  86.     virtual OIOout& operator<<(unsigned long) = 0;
  87.     virtual OIOout& operator<<(float) = 0;
  88.     virtual OIOout& operator<<(double) = 0;
  89.     virtual OIOout& put(char) = 0;
  90.     virtual OIOout& put(const char* val, unsigned size) = 0;
  91.     virtual OIOout& put(const unsigned char* val, unsigned size) = 0;
  92.     virtual OIOout& put(const short* val, unsigned size) = 0;
  93.     virtual OIOout& put(const unsigned short* val, unsigned size) = 0;
  94.     virtual OIOout& put(const int* val, unsigned size) = 0;
  95.     virtual OIOout& put(const unsigned int* val, unsigned size) = 0;
  96.     virtual OIOout& put(const long* val, unsigned size) = 0;
  97.     virtual OIOout& put(const unsigned long* val, unsigned size) = 0;
  98.     virtual OIOout& put(const float* val, unsigned size) = 0;
  99.     virtual OIOout& put(const double* val, unsigned size) = 0;
  100.     virtual OIOout& putCString(const char*) = 0;
  101.     virtual int precision() = 0;
  102.     virtual int precision(int) = 0;
  103.     virtual int width() = 0;
  104.     virtual int width(int) = 0;
  105. };
  106.  
  107. #endif /* OIO_H */
  108.